#define QueueSize 100
typedef int DataType;
typedef struct Node
{
	DataType data;
	struct Node *pLChild;
	struct Node *pRChild;
}*PBiTreeNode,BiTreeNode;

void InitBiTree(PBiTreeNode* pPRootNode);
void CreateBiTree(PBiTreeNode* pPRootNode);
BiTreeNode* CreateBiTree();
void PreOrderTraversal(BiTreeNode *pRootNode);
void InOrderTraversal(BiTreeNode *pRootNode);
void PostOrderTraversal(BiTreeNode *pRootNode);
void LevelOrderTraversal(BiTreeNode *pRootNode);
void TreePrint(BiTreeNode *pRootNode, int level);
int NodesNumGetter(BiTreeNode *pRootNode);
int LeafNumGetter(BiTreeNode *pRootNode);
int NotLeafNumGetter(BiTreeNode *pRootNode);
int DepthGetter(BiTreeNode *pRootNode);
void DestroyBitTree(PBiTreeNode* pPRootNode);
void DestroyBiTree(BiTreeNode *pRootNode);

